widget: Add checks for setting state flags
authorBenjamin Otte <otte@redhat.com>
Fri, 15 Aug 2014 14:51:42 +0000 (16:51 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 16 Aug 2014 14:34:15 +0000 (16:34 +0200)
This is more for GTK developers to catch when they forgot to change
GTK_STATE_FLAGS_BITS after adding a new state flag than to prevent
widget developers from using the wrong flags.

gtk/gtkwidget.c

index d2cf6b15447534c75a7be059082f532c762fcc83..1d9dc14300bb9f96a4eb0c96e1c4a508616162ba 100644 (file)
@@ -8790,6 +8790,7 @@ gtk_widget_set_state_flags (GtkWidget     *widget,
 #define ALLOWED_FLAGS (~(GTK_STATE_FLAG_DIR_LTR | GTK_STATE_FLAG_DIR_RTL))
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
+  g_return_if_fail (flags < (1 << GTK_STATE_FLAGS_BITS));
 
   if ((!clear && (widget->priv->state_flags & flags) == flags) ||
       (clear && widget->priv->state_flags == flags))
@@ -8819,6 +8820,7 @@ gtk_widget_unset_state_flags (GtkWidget     *widget,
                               GtkStateFlags  flags)
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
+  g_return_if_fail (flags < (1 << GTK_STATE_FLAGS_BITS));
 
   if ((widget->priv->state_flags & flags) == 0)
     return;